/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufc.quixada.adrs.service;

import br.ufc.quixada.adrs.dao.VisitanteDAO;
import br.ufc.quixada.adrs.model.Visitante;
import br.ufc.quixada.adrs.util.Msg;
import br.ufc.quixada.adrs.util.UtilAdrs;
import java.sql.SQLException;
import org.slf4j.LoggerFactory;

/**
 *
 * @author Caio
 */
public class VisitanteService {

    private final VisitanteDAO dao = new VisitanteDAO();

    public boolean insertVisitante(Visitante visitante) {
        try {
            UtilAdrs.upperCase(visitante);
            dao.insert(visitante);
            return true;
        } catch (SQLException ex) {
            LoggerFactory.getLogger(this.getClass()).error(Msg.EXCEPTION_MESSAGE, this.getClass().getSimpleName(), ex);
            return false;
        }
    }

    public boolean updateVisitante(Visitante visitante) {
        try {
            UtilAdrs.upperCase(visitante);
            dao.update(visitante);
            return true;
        } catch (SQLException ex) {
            LoggerFactory.getLogger(this.getClass()).error(Msg.EXCEPTION_MESSAGE, this.getClass().getSimpleName(), ex);
            return false;
        }
    }

    public boolean reativarContaVisit(Visitante visitante) {
        try {
            dao.reativarVisit(visitante);
            return visitante.getAtivo();
        } catch (SQLException ex) {
            LoggerFactory.getLogger(this.getClass()).error(Msg.EXCEPTION_MESSAGE, this.getClass().getSimpleName(), ex);
            return false;
        }
    }

    public boolean deleteVisitante(Long id) {
        try {
            dao.delete(id);
            return true;
        } catch (SQLException ex) {
            LoggerFactory.getLogger(this.getClass()).error(Msg.EXCEPTION_MESSAGE, this.getClass().getSimpleName(), ex);
            return false;
        }
    }

    public Visitante getVisitanteByUsuarioId(Long id) {
        try {
            Visitante visitante = dao.getByUsuarioId(id);
            if (visitante == null) {
                return null;
            } else {
                return visitante;
            }
        } catch (SQLException ex) {
            LoggerFactory.getLogger(this.getClass()).error(Msg.EXCEPTION_MESSAGE, this.getClass().getSimpleName(), ex);
            return null;
        }
    }

    public Visitante getVisitanteByUsuarioIdToAtivarConta(Long id) {
        try {
            Visitante visitante = dao.getByUsuarioIdToAivarConta(id);
            if (visitante == null) {
                return null;
            } else {
                return visitante;
            }
        } catch (SQLException ex) {
            LoggerFactory.getLogger(this.getClass()).error(Msg.EXCEPTION_MESSAGE, this.getClass().getSimpleName(), ex);
            return null;
        }
    }
}
